// Copyright 2023 Specter Ops, Inc.
//
// Licensed under the Apache License, Version 2.0
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// SPDX-License-Identifier: Apache-2.0

// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/specterops/bloodhound/src/services/agi (interfaces: AgiData)

// Package mocks is a generated GoMock package.
package mocks

import (
	context "context"
	reflect "reflect"

	model "github.com/specterops/bloodhound/src/model"
	gomock "go.uber.org/mock/gomock"
)

// MockAgiData is a mock of AgiData interface.
type MockAgiData struct {
	ctrl     *gomock.Controller
	recorder *MockAgiDataMockRecorder
}

// MockAgiDataMockRecorder is the mock recorder for MockAgiData.
type MockAgiDataMockRecorder struct {
	mock *MockAgiData
}

// NewMockAgiData creates a new mock instance.
func NewMockAgiData(ctrl *gomock.Controller) *MockAgiData {
	mock := &MockAgiData{ctrl: ctrl}
	mock.recorder = &MockAgiDataMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockAgiData) EXPECT() *MockAgiDataMockRecorder {
	return m.recorder
}

// CreateAssetGroupCollection mocks base method.
func (m *MockAgiData) CreateAssetGroupCollection(arg0 context.Context, arg1 model.AssetGroupCollection, arg2 model.AssetGroupCollectionEntries) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateAssetGroupCollection", arg0, arg1, arg2)
	ret0, _ := ret[0].(error)
	return ret0
}

// CreateAssetGroupCollection indicates an expected call of CreateAssetGroupCollection.
func (mr *MockAgiDataMockRecorder) CreateAssetGroupCollection(arg0, arg1, arg2 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateAssetGroupCollection", reflect.TypeOf((*MockAgiData)(nil).CreateAssetGroupCollection), arg0, arg1, arg2)
}

// GetAllAssetGroups mocks base method.
func (m *MockAgiData) GetAllAssetGroups(arg0 context.Context, arg1 string, arg2 model.SQLFilter) (model.AssetGroups, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetAllAssetGroups", arg0, arg1, arg2)
	ret0, _ := ret[0].(model.AssetGroups)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetAllAssetGroups indicates an expected call of GetAllAssetGroups.
func (mr *MockAgiDataMockRecorder) GetAllAssetGroups(arg0, arg1, arg2 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAllAssetGroups", reflect.TypeOf((*MockAgiData)(nil).GetAllAssetGroups), arg0, arg1, arg2)
}

// GetAssetGroup mocks base method.
func (m *MockAgiData) GetAssetGroup(arg0 context.Context, arg1 int32) (model.AssetGroup, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetAssetGroup", arg0, arg1)
	ret0, _ := ret[0].(model.AssetGroup)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetAssetGroup indicates an expected call of GetAssetGroup.
func (mr *MockAgiDataMockRecorder) GetAssetGroup(arg0, arg1 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetAssetGroup", reflect.TypeOf((*MockAgiData)(nil).GetAssetGroup), arg0, arg1)
}
